package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excels;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 打卡原始记录对象 kq_card_record
 * 
 * @author ruoyi
 * @date 2022-03-18
 */
public class KqCardRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录id */
    private Long recordId;

    /** 人员编号 */
    @Excel(name = "人员编号")
    private Long sysNo;

    /** 用户证件号 */
    @Excel(name = "用户证件号")
    private String employeeId;

    /** 卡号 */
    @Excel(name = "卡号")
    private String serial;

    /** 打卡时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date cardTime;

    /** 打卡类型 0打卡；1手工增加；2手工修改 默认 0 */
    @Excel(name = "打卡类型 0打卡；1手工增加；2手工修改 默认 0")
    private Integer recordType;

    @TableField(exist = false)
    private String recordTypeString;

    /** 设备id */
    @Excel(name = "设备id")
    private Long deviceSysId;

    /** 门id */
    @Excel(name = "门id")
    private Long doorId;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 操作员id */
    @Excel(name = "操作员id")
    private Long operatorId;

    /** 员工姓名 */
    @Excel(name = "员工姓名")
    private String empName;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 房门名称 */
    @Excel(name = "房门名称")
    private String doorName;

    /** 备注 */
    @Excel(name = "备注")
    private String describe;

    /** 操作员名称 */
    @Excel(name = "操作员名称")
    private String operatorName;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer deptId;

    /** 进出方向：1进 2 出 */
    @Excel(name = "进出方向：1进 2 出")
    private Long direction;

    @TableField(exist = false)
    private String directionString;

    @TableField(exist = false)
    private String[] dateRange;

    @TableField(exist = false)
    private List<String> dates;

    @TableField(exist = false)
    private List<String> empIds;

    public String[] getDateRange() {
        return dateRange;
    }

    public String startDate;

    public String endDate;

    //狀態
    private Integer type;

    //日期類型
    private Integer dateType;

    public Integer getDateType() {
        return dateType;
    }

    public void setDateType(Integer dateType) {
        this.dateType = dateType;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public void setDateRange(String[] dateRange) {
        this.dateRange = dateRange;
    }

    public void setRecordId(Long recordId)
    {
        this.recordId = recordId;
    }

    public Long getRecordId() 
    {
        return recordId;
    }
    public void setSysNo(Long sysNo) 
    {
        this.sysNo = sysNo;
    }

    public Long getSysNo() 
    {
        return sysNo;
    }
    public void setEmployeeId(String employeeId) 
    {
        this.employeeId = employeeId;
    }

    public String getEmployeeId() 
    {
        return employeeId;
    }
    public void setSerial(String serial) 
    {
        this.serial = serial;
    }

    public String getSerial() 
    {
        return serial;
    }
    public void setCardTime(Date cardTime) 
    {
        this.cardTime = cardTime;
    }

    public Date getCardTime() 
    {
        return cardTime;
    }
    public void setRecordType(Integer recordType) 
    {
        this.recordType = recordType;
    }

    public Integer getRecordType() 
    {
        return recordType;
    }
    public void setDeviceSysId(Long deviceSysId) 
    {
        this.deviceSysId = deviceSysId;
    }

    public Long getDeviceSysId() 
    {
        return deviceSysId;
    }
    public void setDoorId(Long doorId) 
    {
        this.doorId = doorId;
    }

    public Long getDoorId() 
    {
        return doorId;
    }
    public void setDeviceType(String deviceType) 
    {
        this.deviceType = deviceType;
    }

    public String getDeviceType() 
    {
        return deviceType;
    }
    public void setOperatorId(Long operatorId) 
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId() 
    {
        return operatorId;
    }
    public void setEmpName(String empName) 
    {
        this.empName = empName;
    }

    public String getEmpName() 
    {
        return empName;
    }
    public void setDeptName(String deptName) 
    {
        this.deptName = deptName;
    }

    public String getDeptName() 
    {
        return deptName;
    }
    public void setDeviceName(String deviceName) 
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName() 
    {
        return deviceName;
    }
    public void setDoorName(String doorName) 
    {
        this.doorName = doorName;
    }

    public String getDoorName() 
    {
        return doorName;
    }
    public void setDescribe(String describe) 
    {
        this.describe = describe;
    }

    public String getDescribe() 
    {
        return describe;
    }
    public void setOperatorName(String operatorName) 
    {
        this.operatorName = operatorName;
    }

    public String getOperatorName() 
    {
        return operatorName;
    }
    public void setDeptId(Integer deptId) 
    {
        this.deptId = deptId;
    }

    public Integer getDeptId() 
    {
        return deptId;
    }
    public void setDirection(Long direction) 
    {
        this.direction = direction;
    }

    public Long getDirection() 
    {
        return direction;
    }

    public String getRecordTypeString() {
        return recordTypeString;
    }

    public void setRecordTypeString(String recordTypeString) {
        this.recordTypeString = recordTypeString;
    }

    public String getDirectionString() {
        return directionString;
    }

    public void setDirectionString(String directionString) {
        this.directionString = directionString;
    }

    public List<String> getDates() {
        return dates;
    }

    public void setDates(List<String> dates) {
        this.dates = dates;
    }

    public List<String> getEmpIds() {
        return empIds;
    }

    public void setEmpIds(List<String> empIds) {
        this.empIds = empIds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("recordId", getRecordId())
            .append("sysNo", getSysNo())
            .append("employeeId", getEmployeeId())
            .append("serial", getSerial())
            .append("cardTime", getCardTime())
            .append("recordType", getRecordType())
            .append("deviceSysId", getDeviceSysId())
            .append("doorId", getDoorId())
            .append("deviceType", getDeviceType())
            .append("operatorId", getOperatorId())
            .append("empName", getEmpName())
            .append("deptName", getDeptName())
            .append("deviceName", getDeviceName())
            .append("doorName", getDoorName())
            .append("describe", getDescribe())
            .append("operatorName", getOperatorName())
            .append("updateTime", getUpdateTime())
            .append("deptId", getDeptId())
            .append("direction", getDirection())
            .toString();
    }
}
